PTGen 是一个面向安全研究、漏洞情报采集与知识库构建的多源爬虫平台。当前仓库围绕四个核心模块组织:网页爬取、RSS 增量采集、微信公众号爬取、外部仓库同步。所有结果统一落到 raw_data/,便于后续做清洗、去重、关联分析和知识图谱构建。
Note
当前版本已经把个人敏感配置统一收敛到仓库根目录 .env。开源仓库中只保留 .env.example 模板,实际凭据、Cookie、Token、代理地址和本地环境参数不应再写入 Python 源码。
Warning
项目包含大体量数据文件,仓库已启用 Git LFS。若只想浏览代码,可跳过 LFS 拉取;若要完整复现实验数据,请先执行 git lfs install 和 git lfs pull。
|
CSDN、GitHub、奇安信攻防社区、先知社区统一由爬虫管理器调度。 |
支持一次性同步和定时调度两种模式,适合做低成本增量采集。 |
|
支持搜狗直采、mitmproxy + UI 自动化,以及候选账号发现回流。 |
同步 ATT&CK、CVE、CWE、CAPEC、CISA KEV、Exploit-DB 等外部库。 |
PTGen/
├── crawlers/
│ ├── main_crawler.py
│ ├── crawler_manager.py
│ ├── sync_data_light.py
│ ├── rss_crawler.py
│ ├── rss_scheduler.py
│ ├── config.py
│ ├── project_settings.py
│ ├── attack_core/
│ └── wechat_crawler/
├── docs/assets/images/
├── raw_data/
├── .env.example
├── requirements.txt
├── .gitattributes
└── README.md
python -m venv .venvWindows:
.venv\Scripts\activateLinux / macOS:
source .venv/bin/activatepip install -U pip
pip install -r requirements.txtWindows:
copy .env.example .envLinux / macOS:
cp .env.example .env至少按需填写以下条目:
PTGEN_CSDN_COOKIE/PTGEN_CSDN_USERNAME/PTGEN_CSDN_PASSWORDPTGEN_GITHUB_TOKENPTGEN_DEEPSEEK_API_KEYPTGEN_WECHAT_COOKIE、PTGEN_WECHAT_X_WECHAT_KEY等微信抓包参数PTGEN_HTTP_PROXY/PTGEN_HTTPS_PROXY
根据你的目标,在下方四个模块入口中选择一个或多个执行。
项目中的个人关键信息现在统一由根目录 .env 管理,代码通过 crawlers/project_settings.py 读取。
PTGEN_CSDN_COOKIE=
PTGEN_GITHUB_TOKEN=
PTGEN_DEEPSEEK_API_KEY=
PTGEN_WECHAT_COOKIE=
PTGEN_WECHAT_X_WECHAT_KEY=
PTGEN_HTTP_PROXY=http://127.0.0.1:7890
PTGEN_HTTPS_PROXY=http://127.0.0.1:7890这一设计的原则是:
- 源码仓库不存放个人 Cookie、Token、API Key。
.env.example作为公开模板,.env作为本地私有配置。- 模块级运行参数保留在各自配置文件中,个人敏感参数只放在
.env。
适用数据源:CSDN、GitHub、奇安信攻防社区、先知社区。
常用命令:
python crawlers/main_crawler.py
python crawlers/main_crawler.py --all -q CVE-2024-23897 --yes
python crawlers/main_crawler.py --sources csdn,github,qianxin,xianzhi -q "Java 反序列化" --max-pages 10 --yes核心入口:
crawlers/main_crawler.pycrawlers/crawler_manager.py
适用场景:低成本增量采集,支持一次性同步和调度器周期运行。
常用命令:
python crawlers/main_crawler.py --rss-sync -q 内网渗透
python crawlers/rss_scheduler.py --interval 2
python crawlers/rss_scheduler.py --once核心入口:
crawlers/rss_crawler.pycrawlers/rss_scheduler.py
适用场景:公众号文章直采、PC 微信真实流量采集、公众号候选发现与回流。
python crawlers/wechat_crawler/sogou_crawler.py --seed
python crawlers/wechat_crawler/sogou_crawler.py --accounts FreeBuf 安全客 --count 10mitmdump -s crawlers/wechat_crawler/interceptor.py
python crawlers/wechat_crawler/ui_bot.py
python crawlers/wechat_crawler/scheduler.pypython crawlers/wechat_crawler/run_discovery.py
python crawlers/wechat_crawler/run_discovery.py --channel b
python crawlers/wechat_crawler/run_discovery.py --channel c --auto-add --crawl --count 10核心入口:
crawlers/wechat_crawler/sogou_crawler.pycrawlers/wechat_crawler/interceptor.pycrawlers/wechat_crawler/ui_bot.pycrawlers/wechat_crawler/scheduler.pycrawlers/wechat_crawler/run_discovery.py
适用场景:同步外部安全知识库或漏洞数据库镜像。
常用命令:
python crawlers/sync_data_light.py
python crawlers/sync_data_light.py --repos attack
python crawlers/sync_data_light.py --repos cisa-kev,cwe,capec
python crawlers/sync_data_light.py --repos exploit-db,cve,nvd支持的仓库 ID:
attackcisa-kevcwecapecd3fendgithub-advisoryzdicvenvdexploit-dblinux-vulns
核心入口:
crawlers/sync_data_light.py
下图概括了微信子系统的双轨采集、统一沉淀和发现回流闭环:
默认输出目录如下:
raw_data/csdn:CSDN 抓取结果raw_data/github:GitHub Issues、仓库与 POC 数据raw_data/qianxin:奇安信结果raw_data/XIANZHI:先知社区结果raw_data/wechat:微信公众号文章与发现结果raw_data/attack-database:ATT&CK 原始资料与派生内容raw_data/cve-database:CVE 列表镜像raw_data/cwe-database:CWE 数据库raw_data/capec-database:CAPEC 数据库raw_data/cisa-kev-database:CISA KEV 数据raw_data/exploit-db-database:Exploit-DB 镜像
BaseCrawler 定义统一接口,不同站点通过继承实现 crawl() 和 get_source_name()。CrawlerManager 负责注册、执行、汇总和落盘。
crawlers/attack_core/stix 负责下载并解析 MITRE ATT&CK STIX Bundle,输出战术、技术、组织、软件、缓解措施等结构化 JSON。
微信链路由直采、抓包、UI 自动化和发现回流组成,是仓库中复杂度最高、平台依赖最强的部分。
仓库当前已纳入大量原始数据,且存在超大单文件,因此 raw_data/** 通过 Git LFS 管理。
git lfs install
git lfs pull如果只想查看代码,可以克隆后不执行 git lfs pull。
Important
CSDN 会员内容、微信公众号数据、社区资源与外部镜像的采集都可能受到目标站点服务条款、版权条款或网络合规要求约束。请仅在授权和合规前提下使用本项目。
- 不要把真实
.env上传到公开仓库。 - 若仓库曾经提交过敏感凭据,建议立即轮换并考虑后续做历史清理。
- 大规模抓取请控制频率,避免触发站点风控或造成异常负载。
- 微信 UI 自动化链路依赖 Windows 图形环境。
- 部分模块受代理、Cookie、Token 和第三方站点可用性影响较大。
- 目前仍以研究型平台为主,测试覆盖和部署自动化尚未完全工程化。
当前仓库尚未提供正式 LICENSE 文件。在补充许可证前,请不要默认将本仓库视为已开放商业或再分发授权。